<?php
	session_start();

	header('Content-type: text/xml');
	header("Cache-Control: no-cache, must-revalidade");

	include("/var/www/html/vivencias/conexaoBD.php");

	if (!isset($_SESSION['recebendoMsg'])) {
		$_SESSION['recebendoMsg'] = true;
		if (isset($_POST['mensagem'])) {
			$strMensagem = mb_convert_encoding($_POST['mensagem'], 'ISO-8859-1', 'UTF-8');

			$strSQL = "INSERT INTO chatMensagens VALUES(default, " . $_SESSION['idCurso'] . "," . $_SESSION['idUsuario'] . ", NOW(), '" . $strMensagem . "', 0);";
			mysql_query($strSQL, $conexao);
			unset($_POST['mensagem']);
		}
		
		echo "<?xml version='1.0' encoding='ISO-8859-1'?>";
		echo "<conteudo>";

		//Atualizando a hora da ultima atualizacao do chat no browser do usuario ( ultima hora que foi feita uma requisicao ao servidor ) 
		$queryAtualizaHora     = "UPDATE chatUsuariosOnline set dataHora=NOW() WHERE idUsuario='".$_SESSION['idUsuario']."' AND idCurso='".$_SESSION['idCurso']."'";
		$resultadoAtualizaHora = mysql_query($queryAtualizaHora,$conexao);
		if(!$resultadoAtualizaHora){
			die("Erro:" . mysql_error());
		}

		$queryUsuariosOffline     = "DELETE FROM chatUsuariosOnline WHERE idUsuario='".$objeto1->idUsuario."' AND idCurso='".$_SESSION['idCurso']."' AND time_to_sec(timediff(now(), dataHora)) > 60;";
		$resultadoUsuariosOffline = mysql_query($queryUsuariosOffline,$conexao);
		if(!$resultadoUsuariosOffline){
			die("Erro:" . mysql_error());
		}

		//Verificando quem esta online naquele momento
		$query     = "SELECT usuarios.nome FROM chatUsuariosOnline,usuarios WHERE chatUsuariosOnline.idUsuario=usuarios.idUsuario AND idCurso='".$_SESSION['idCurso']."'";
		$resultado = mysql_query($query,$conexao);

		echo "<usuarios>";
		while($objeto = mysql_fetch_object($resultado)){
			echo "<usuario>";
				echo $objeto->nome;
			echo "</usuario>";
		}
		echo "</usuarios>";

		echo "<mensagens>";
		if(isset($_SESSION['idUltimaMsgChat'])){
			$queryMsg	= "SELECT chatMensagens.*, usuarios.nome FROM chatMensagens, usuarios WHERE chatMensagens.idCurso='".$_SESSION['idCurso']."' AND chatMensagens.idMensagem > '".$_SESSION['idUltimaMsgChat']."' AND chatMensagens.idUsuario = usuarios.idUsuario ORDER BY idMensagem ASC";
			unset($_SESSION['idUltimaMsgChat']);
		}
		else {
			$queryHoraEntrada	= "SELECT dataHora FROM chatUsuariosOnline WHERE idUsuario='".$_SESSION['idUsuario']."' AND idCurso='".$_SESSION['idCurso']."'";
			$resultadoHoraEntrada = mysql_query($queryHoraEntrada,$conexao);
			if(!($dataHora = mysql_fetch_array($resultadoHoraEntrada))){
				die("Erro:" . mysql_error());
			}
			else {
				$queryMsg	= "SELECT chatMensagens.*, usuarios.nome FROM chatMensagens, usuarios WHERE chatMensagens.idCurso='".$_SESSION['idCurso']."' AND chatMensagens.dataHora > '".$dataHora[0]."' AND chatMensagens.idUsuario = usuarios.idUsuario ORDER BY idMensagem ASC";
			}

		}
		$resultadoMsg = mysql_query($queryMsg,$conexao);
		while($objetoMsg = mysql_fetch_object($resultadoMsg)){	
			echo "<mensagem>";
			echo "<remetente>";
			echo $objetoMsg->nome;
			echo "</remetente>";
			echo "<dataHora>";
			echo $objetoMsg->dataHora;
			echo "</dataHora>";
			echo "<corpo>";
			echo $objetoMsg->mensagem;
			echo "</corpo>";
			echo "</mensagem>";
			$_SESSION['idUltimaMsgChat'] = $objetoMsg->idMensagem;
		}
		if ($_SESSION['idUltimaMsgChat'] == "") {
			$queryMsg	= "SELECT idMensagem FROM chatMensagens WHERE idCurso='".$_SESSION['idCurso']."'  ORDER BY idMensagem DESC LIMIT 1";
			$resultadoMsg = mysql_query($queryMsg,$conexao);
			if(!($idMensagem = mysql_fetch_array($resultadoMsg))){
				die("Erro:" . mysql_error());
			}
			else {
				$_SESSION['idUltimaMsgChat'] = $idMensagem[0];
			}
		}
		echo "</mensagens>";

		echo "</conteudo>";
		unset($_SESSION['recebendoMsg']);
	}
	else {
		echo "<?xml version='1.0' encoding='ISO-8859-1'?>";
		echo "<conteudo>";
		echo "<usuarios></usuarios>";
		echo "<mensagens></mensagens>";
		echo "</conteudo>";
	}
?>
